#include<stdio.h>
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
    int src = 0;
    int dst = 0;
    int *arr=(int*)malloc((m+n)*sizeof(int));
    int k = 0;
    while (src < nums1Size || dst < nums2Size)
    {
        if (nums1[src] < nums2[dst])
        {
            arr[k] = nums1[src];
        }
        else if (nums1[src] > nums2[dst])
        {
            arr[k++] = nums2[dst++];
        }
        else {
            arr[k++] = nums1[src++];
        }
    }
    for (int i = 0; i < m + n; i++)
    {
        nums1[i] = arr[i];
    }
}

int main()
{
    int nums1[] = { 1, 2, 3, 0, 0, 0 };
    int nums2[] = { 2,5,6 };
    merge(nums1, 6, 3, nums2, 3, 3);
    for (int i = 0; i < 6; i++)
    {
        printf("%d", nums1[i]);
    }
    return 0;
}